package br.edu.eseg.brproject.model;

// Generated May 29, 2011 12:04:47 PM by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Type;
import org.hibernate.validator.NotNull;

/**
 * Licoes generated by hbm2java
 */
@Entity
@Table(name = "licao" )
public class Licao implements java.io.Serializable {

	private Long id;
	private Areaimpactada areaimpactada;
	private Projeto projeto;
	private Prioridadelicao prioridadelicao;
	private Impactolicao impactolicao;
	private String descricao;
	private String titulo;

	public Licao() {
	}

	public Licao(Areaimpactada areaimpactada, Projeto projeto,
			Prioridadelicao prioridadelicao, Impactolicao impactolicao,
			String descricao, String titulo) {
		this.areaimpactada = areaimpactada;
		this.projeto = projeto;
		this.prioridadelicao = prioridadelicao;
		this.impactolicao = impactolicao;
		this.descricao = descricao;
		this.titulo = titulo;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id")
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "areaimpactadaid", nullable = false)
	@NotNull
	public Areaimpactada getAreaimpactada() {
		return this.areaimpactada;
	}

	public void setAreaimpactada(Areaimpactada areaimpactada) {
		this.areaimpactada = areaimpactada;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "projetoid", nullable = false)
	@NotNull
	public Projeto getProjeto() {
		return this.projeto;
	}

	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "prioridadelicaoid", nullable = false)
	@NotNull
	public Prioridadelicao getPrioridadelicao() {
		return this.prioridadelicao;
	}

	public void setPrioridadelicao(Prioridadelicao prioridadelicao) {
		this.prioridadelicao = prioridadelicao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "impactolicaoid", nullable = false)
	@NotNull
	public Impactolicao getImpactolicao() {
		return this.impactolicao;
	}

	public void setImpactolicao(Impactolicao impactolicao) {
		this.impactolicao = impactolicao;
	}

	@Column(name = "descricao", nullable = false)
	@NotNull
	@Type(type = "text")
	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	@Column(name = "titulo", nullable = false)
	@NotNull
	public String getTitulo() {
		return this.titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

}
